/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package feuerwehr;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author GundlaPe
 */
public class Stichwort {
    
    /**
     * Konstruktor für die Klasse Stichwort
     * @param pk Der Primary Key
     * @param bezeichnung Die Langbezeichnung
     * @param kuerzel Das Kürzel für das Stcihwort
     */
    public Stichwort(int pk, String bezeichnung, String kuerzel) {
        this.pk=pk;
        this.bezeichnung=bezeichnung;
        this.kuerzel=kuerzel;
    }
    
    /**
     * Liste aller möglichen Stichworten erstellen
     * @return Array mit allen Stichworten
     */
    public static List <Stichwort> getStichworte() {
        List <Stichwort> al = new ArrayList();
        try {
            PreparedStatement ps = Feuerwehr.getConnection().prepareStatement("select pk, kuerzel, bezeichnung from t_stichwort order by bezeichnung");
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                Stichwort s = new Stichwort(rs.getInt("pk"), rs.getString("kuerzel"), rs.getString("bezeichnung"));
                al.add(s);
            }
            rs.close();
            ps.close();            
        } catch (SQLException exc) {
            System.err.println("ERROR[Stichwort]: " + exc.toString());
        }
        return al;
    }    

   /**
     * Dase aktuelle Stichwort zurückgeben
     * @param iPK Der PK für das Stichwort
     * @return Das aktuelle Stichwort
     */
    public static Stichwort getStichwort(int iPK) {
        Stichwort s = null;
        try {
            PreparedStatement ps = Feuerwehr.getConnection().prepareStatement("select pk, kuerzel, bezeichnung from t_stichwort where pk = ?");
            ps.setInt(1, iPK);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                s = new Stichwort(rs.getInt("pk"), rs.getString("kuerzel"), rs.getString("bezeichnung"));
            }
            rs.close();
            ps.close();            
        } catch (SQLException exc) {
            System.err.println("ERROR[Stichwort]: " + exc.toString());
        }
        return s;
    }  
    
    public String getPK() {
        return String.valueOf(pk);
    }
    
    public String getBezeichnung() {
        return bezeichnung;
    }
    
    public String getKuerzel() {
        return kuerzel;
    }
    
    @Override
    public String toString() {
        return bezeichnung + " ("+ kuerzel + ")";
    }
    
    private final int pk;
    private final String bezeichnung;
    private final String kuerzel;
}
